<template>
    <div>
        <slot></slot>
    </div>
</template>

<script>
export default {
    name:'iForm',
    data(){
        return {
            fields:[]
        }
    },
    provide(){
        return {
           form:this 
        }
    },
    props:{
        model:{
            type:Object
        },
        rules:{
            type:Object
        }
    },
    methods:{
        //校验
        validate(cb){

            let valid = true;  //是否校验通过

            this.fields.forEach(field => {
                field.validate('',(error) => {
                    if(error) {
                        valid = false;
                    }
                })
            })

            cb(valid)

            //为真

            //校验所有
        },
        //重置
        resetFields(){
            console.log("重置");
            this.fields.forEach(field => {
                field.resetVal();
            })
        }
    },
    created(){
        this.$on('form-add',(field) => {
            this.fields.push(field);
        })
    }
}
</script>

